#ifndef LEVEL_LOADER_H_GGJ
#define LEVEL_LOADER_H_GGJ

#include <string>
#include <vector>

#define LEVEL_LOADER CLevelLoader::Instance

class CObject; // forward declaration

class CLevelLoader
{
public:
	static CLevelLoader* Instance();
	~CLevelLoader();

	bool LoadLevel(const std::string& levelPath, std::vector<CObject*>& objects /* out */);
private:
	// no instantiation for you!
	CLevelLoader();
	CLevelLoader(const CLevelLoader& other) { }
	CLevelLoader& operator = (const CLevelLoader& other) { return *this; }
};

#endif // LEVEL_LOADER_H_GGJ